home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ For TASM / ALIASDOS.PAK / README.TXT < prev   
Text File  |  1996-02-21  |  3KB  |  53 lines

  1.  
  2.    readme.txt
  3.  
  4.    Copyright (c) 1993 by Borland International, Inc.
  5.  
  6.    This readme explains aliasing and introduces some ways to use it.
  7.  
  8.    Part of the aliasdos example.
  9.  
  10.  
  11.  
  12. TASM now supports aliasing.  This means that TASM allows the association
  13. of an alias name with another name ( called the substitute name ) in a 
  14. program.  Any time that alias name is encountered it will really refer 
  15. to the substitute name.
  16. Aliasing is primarily a linker issue.  The alias statement will generate
  17. an alias record setting the alias name equal to the substitute name,
  18. e.g.: 000056 ALIAS      '_Set_Coords' = '_SetCoords'
  19. When the linker tries to resolve a reference to a name and it finds an alias 
  20. record for that name, it will continue trying to resolve the reference 
  21. using the substitute name.
  22.  
  23. The following alias example shows one possible use of aliasing. Imagine 
  24. you have a library ( .lib ) that is used by your clients.  For some reason 
  25. you are forced to modify some public names in your library, but you don't 
  26. want to change all the sources and recompile the lib. You want your old 
  27. clients to be able to keep using the old names, but at the same time anybody 
  28. should be able to refer to the same variables with the new names. An easy 
  29. solution to this problem is to link in an assembly module that contains 
  30. alias statements for the names you are forced to modify.  Simply assemble 
  31. it, lib it into your library, and you're done.
  32.  
  33. One other possible use of aliasing involves the situation where you
  34. have a library of 'C' functions.  Linking this library with 'C' programs
  35. is ofcourse no problem, but if users link to your library from 'C++' 
  36. programs they will have to modify the function prototypes to make them
  37. extern 'C', otherwise the mangled names will not be able to be resolved
  38. with the 'C' names in the library.
  39. To make life easy for the users of the library you can make aliases for
  40. the functions where the aliases are the mangled equivalents of the 'C'
  41. names.  That way users don't have to modify their prototypes anymore
  42. with extern 'C' depending if they are in an 'C' or an 'C++' module.
  43.  
  44. Take a look at library.c which contains some public functions.  In the
  45. file alias.asm there are alias statements to make aliases for the
  46. function names.  Finally, olduser.c, newuser.c, and cppuser.cpp are 
  47. basically the same program, but they use the old, the new, and the CPP 
  48. names for the functions respectively.
  49.  
  50. The command: "make -B" will compile and assemble the appropriate files. 
  51.  
  52.  
  53.